package homework.day09;

import java.util.Comparator;
import java.util.SortedSet;
import java.util.TreeSet;

/**
 * @author ThinkBook
 */
//将1-10按照奇数在前偶数在后，奇数正序，偶数倒序的方式保存到Set集合中（排序）
public class Test06 {
    public static void main(String[] args) {
        // 创建自定义比较器
        Comparator<Integer> customComparator = new Comparator<Integer>() {
            @Override
            public int compare(Integer a, Integer b) {
                //偶数降序
                if (a % 2 == 0 && b % 2 == 0) {
                    return -1;//降序
                }
                //奇数升序
                if (a % 2 == 1 && b % 2 == 1) {
                    return 1; //升序
                }
                // 先判断两个数的奇偶性
                if ((a % 2 == 1 && b % 2 == 1) || (a % 2 == 0 && b % 2 == 0)) {
                    // 如果都是奇数或者都是偶数，按顺序排列
                    return a - b;
                }
                // 奇数在前，偶数在后
                if (a % 2 == 1 && b % 2 == 0) {
                    return -1; // a 是奇数，b 是偶数，a 排在前面
                } else {
                    return 1;  // a 是偶数，b 是奇数，a 排在后面
                }
            }
        };

        // 创建 TreeSet 并应用自定义比较器
        SortedSet<Integer> sortedSet = new TreeSet<>(customComparator);

        // 添加 1 到 10 的数字
        for (int i = 1; i <= 10; i++) {
            sortedSet.add(i);
        }

        // 打印结果
        System.out.println("Sorted Set: " + sortedSet);
    }
}
